val f : ['a. 'a -> ['b. 'a * 'b -> 'a * 'b]]
